<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>鱼皮在实验室出版教材的经历 | 鱼皮的编程宝典</title>
    <meta name="generator" content="VuePress 1.9.10">
    <link rel="icon" href="/favicon.ico">
    <script>
        var _hmt = _hmt || [];
        (function() {
          var hm = document.createElement("script");
          hm.src = "https://hm.baidu.com/hm.js?2675818a983a3131404cee835018f016";
          var s = document.getElementsByTagName("script")[0]; 
          s.parentNode.insertBefore(hm, s);
        })();
      </script>
    <meta name="description" content="贴心的编程学习路线，全面的编程知识百科">
    <meta property="article:modified_time" content="2023-11-11T12:17:47.000Z">
    <meta property="og:site_name" content="鱼皮的编程宝典">
    <meta property="og:title" content="鱼皮在实验室出版教材的经历">
    <meta property="og:type" content="article">
    <meta property="og:url" content="https://codefather.cn/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/">
    <meta name="twitter:title" content="鱼皮在实验室出版教材的经历">
    <meta name="twitter:url" content="https://codefather.cn/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:label1" content="Written by">
    <meta name="twitter:label2" content="Filed under">
    <meta name="twitter:data2" content="程序员, 编程, 计算机">
    <meta property="article:tag" content="程序员">
    <meta name="keywords" content="程序员鱼皮, 编程学习路线, 编程知识百科, Java, 编程导航, 前端, 开发, 编程分享, 项目, IT, 求职, 面经">
    
    <link rel="preload" href="/assets/css/0.styles.40c15e22.css" as="style"><link rel="preload" href="/assets/js/app.12ab4756.js" as="script"><link rel="preload" href="/assets/js/2.fd06b53e.js" as="script"><link rel="preload" href="/assets/js/491.ae3a2f87.js" as="script"><link rel="prefetch" href="/assets/js/1.17ea1209.js"><link rel="prefetch" href="/assets/js/10.d9532d8f.js"><link rel="prefetch" href="/assets/js/100.064ea126.js"><link rel="prefetch" href="/assets/js/101.d64c5b33.js"><link rel="prefetch" href="/assets/js/102.5e29a62c.js"><link rel="prefetch" href="/assets/js/103.59ad6cd7.js"><link rel="prefetch" href="/assets/js/104.ae4763e8.js"><link rel="prefetch" href="/assets/js/105.2a9124be.js"><link rel="prefetch" href="/assets/js/106.529bca07.js"><link rel="prefetch" href="/assets/js/107.c8671a0d.js"><link rel="prefetch" href="/assets/js/108.55c93c64.js"><link rel="prefetch" href="/assets/js/109.7d1efa54.js"><link rel="prefetch" href="/assets/js/11.2f89b5eb.js"><link rel="prefetch" href="/assets/js/110.0caecbf5.js"><link rel="prefetch" href="/assets/js/111.a2aeae49.js"><link rel="prefetch" href="/assets/js/112.eb7ceda5.js"><link rel="prefetch" href="/assets/js/113.f304408d.js"><link rel="prefetch" href="/assets/js/114.988c637f.js"><link rel="prefetch" href="/assets/js/115.bfdeed31.js"><link rel="prefetch" href="/assets/js/116.a47b8c53.js"><link rel="prefetch" href="/assets/js/117.2e1e8250.js"><link rel="prefetch" href="/assets/js/118.758ce408.js"><link rel="prefetch" href="/assets/js/119.73d9e688.js"><link rel="prefetch" href="/assets/js/12.53aaa509.js"><link rel="prefetch" href="/assets/js/120.202a8b2e.js"><link rel="prefetch" href="/assets/js/121.ca91d59a.js"><link rel="prefetch" href="/assets/js/122.8804c0dd.js"><link rel="prefetch" href="/assets/js/123.ceada225.js"><link rel="prefetch" href="/assets/js/124.4b2718b7.js"><link rel="prefetch" href="/assets/js/125.72134235.js"><link rel="prefetch" href="/assets/js/126.167b162c.js"><link rel="prefetch" href="/assets/js/127.f8139c17.js"><link rel="prefetch" href="/assets/js/128.da64a377.js"><link rel="prefetch" href="/assets/js/129.c07963b1.js"><link rel="prefetch" href="/assets/js/13.52940164.js"><link rel="prefetch" href="/assets/js/130.f66fc8bb.js"><link rel="prefetch" href="/assets/js/131.a913c7dd.js"><link rel="prefetch" href="/assets/js/132.ea648654.js"><link rel="prefetch" href="/assets/js/133.074ca70e.js"><link rel="prefetch" href="/assets/js/134.dc79ddd8.js"><link rel="prefetch" href="/assets/js/135.c4516208.js"><link rel="prefetch" href="/assets/js/136.2546baf7.js"><link rel="prefetch" href="/assets/js/137.56454fc6.js"><link rel="prefetch" href="/assets/js/138.bdb002bf.js"><link rel="prefetch" href="/assets/js/139.40a2f9b5.js"><link rel="prefetch" href="/assets/js/14.ade1e74d.js"><link rel="prefetch" href="/assets/js/140.06b20427.js"><link rel="prefetch" href="/assets/js/141.8dd992e3.js"><link rel="prefetch" href="/assets/js/142.d9305485.js"><link rel="prefetch" href="/assets/js/143.41bf907e.js"><link rel="prefetch" href="/assets/js/144.c138960c.js"><link rel="prefetch" href="/assets/js/145.fc5b38c8.js"><link rel="prefetch" href="/assets/js/146.c9166b70.js"><link rel="prefetch" href="/assets/js/147.c31d8a01.js"><link rel="prefetch" href="/assets/js/148.5c0534ca.js"><link rel="prefetch" href="/assets/js/149.d2355ea2.js"><link rel="prefetch" href="/assets/js/15.970a8ca5.js"><link rel="prefetch" href="/assets/js/150.c1644898.js"><link rel="prefetch" href="/assets/js/151.b6e4adf0.js"><link rel="prefetch" href="/assets/js/152.7a5071aa.js"><link rel="prefetch" href="/assets/js/153.31abbc68.js"><link rel="prefetch" href="/assets/js/154.9c6bb079.js"><link rel="prefetch" href="/assets/js/155.e5506a40.js"><link rel="prefetch" href="/assets/js/156.992dab50.js"><link rel="prefetch" href="/assets/js/157.12a6ee84.js"><link rel="prefetch" href="/assets/js/158.84dc1045.js"><link rel="prefetch" href="/assets/js/159.fd2022b1.js"><link rel="prefetch" href="/assets/js/16.ff971500.js"><link rel="prefetch" href="/assets/js/160.8d8889cd.js"><link rel="prefetch" href="/assets/js/161.31797def.js"><link rel="prefetch" href="/assets/js/162.bfae7a75.js"><link rel="prefetch" href="/assets/js/163.e5e8094d.js"><link rel="prefetch" href="/assets/js/164.870f212c.js"><link rel="prefetch" href="/assets/js/165.8da20a31.js"><link rel="prefetch" href="/assets/js/166.950a187d.js"><link rel="prefetch" href="/assets/js/167.fd042c52.js"><link rel="prefetch" href="/assets/js/168.7d9f058d.js"><link rel="prefetch" href="/assets/js/169.205df80e.js"><link rel="prefetch" href="/assets/js/17.4b045b26.js"><link rel="prefetch" href="/assets/js/170.270108a3.js"><link rel="prefetch" href="/assets/js/171.9f03d27d.js"><link rel="prefetch" href="/assets/js/172.1882bac7.js"><link rel="prefetch" href="/assets/js/173.fc1fe7d4.js"><link rel="prefetch" href="/assets/js/174.d77c927b.js"><link rel="prefetch" href="/assets/js/175.019b9e83.js"><link rel="prefetch" href="/assets/js/176.5ce31bd8.js"><link rel="prefetch" href="/assets/js/177.9a2006f2.js"><link rel="prefetch" href="/assets/js/178.88265ac1.js"><link rel="prefetch" href="/assets/js/179.3205ce07.js"><link rel="prefetch" href="/assets/js/18.1cdd0514.js"><link rel="prefetch" href="/assets/js/180.2ff51f44.js"><link rel="prefetch" href="/assets/js/181.f792ce97.js"><link rel="prefetch" href="/assets/js/182.103328e1.js"><link rel="prefetch" href="/assets/js/183.40fde303.js"><link rel="prefetch" href="/assets/js/184.1f36ac78.js"><link rel="prefetch" href="/assets/js/185.cf3b1c00.js"><link rel="prefetch" href="/assets/js/186.f7981399.js"><link rel="prefetch" href="/assets/js/187.20fe296d.js"><link rel="prefetch" href="/assets/js/188.7b004fea.js"><link rel="prefetch" href="/assets/js/189.599ca2d9.js"><link rel="prefetch" href="/assets/js/19.5740e4d6.js"><link rel="prefetch" href="/assets/js/190.14087c07.js"><link rel="prefetch" href="/assets/js/191.b0f73f6d.js"><link rel="prefetch" href="/assets/js/192.9d171669.js"><link rel="prefetch" href="/assets/js/193.00975585.js"><link rel="prefetch" href="/assets/js/194.2c7c43b4.js"><link rel="prefetch" href="/assets/js/195.ff126254.js"><link rel="prefetch" href="/assets/js/196.6546ae1c.js"><link rel="prefetch" href="/assets/js/197.eedb67bb.js"><link rel="prefetch" href="/assets/js/198.acdcc22c.js"><link rel="prefetch" href="/assets/js/199.7993a6b2.js"><link rel="prefetch" href="/assets/js/20.8885a4fa.js"><link rel="prefetch" href="/assets/js/200.52f08765.js"><link rel="prefetch" href="/assets/js/201.b85ab10b.js"><link rel="prefetch" href="/assets/js/202.ccec1c85.js"><link rel="prefetch" href="/assets/js/203.3f50a6ed.js"><link rel="prefetch" href="/assets/js/204.f28b803b.js"><link rel="prefetch" href="/assets/js/205.c51c53fd.js"><link rel="prefetch" href="/assets/js/206.ba0aa8f6.js"><link rel="prefetch" href="/assets/js/207.0dce311a.js"><link rel="prefetch" href="/assets/js/208.0ea629a6.js"><link rel="prefetch" href="/assets/js/209.f48c3e71.js"><link rel="prefetch" href="/assets/js/21.0bb62db4.js"><link rel="prefetch" href="/assets/js/210.689db8f2.js"><link rel="prefetch" href="/assets/js/211.72bc0f1f.js"><link rel="prefetch" href="/assets/js/212.456135bd.js"><link rel="prefetch" href="/assets/js/213.d0ea50fc.js"><link rel="prefetch" href="/assets/js/214.1400da91.js"><link rel="prefetch" href="/assets/js/215.aeef3e5d.js"><link rel="prefetch" href="/assets/js/216.a60215af.js"><link rel="prefetch" href="/assets/js/217.d6cd8b69.js"><link rel="prefetch" href="/assets/js/218.1bd500fc.js"><link rel="prefetch" href="/assets/js/219.20faf611.js"><link rel="prefetch" href="/assets/js/22.3e8347a6.js"><link rel="prefetch" href="/assets/js/220.6714179b.js"><link rel="prefetch" href="/assets/js/221.fb5b643d.js"><link rel="prefetch" href="/assets/js/222.d96272e5.js"><link rel="prefetch" href="/assets/js/223.4cb7dc3d.js"><link rel="prefetch" href="/assets/js/224.500d94cc.js"><link rel="prefetch" href="/assets/js/225.d006c34e.js"><link rel="prefetch" href="/assets/js/226.73612150.js"><link rel="prefetch" href="/assets/js/227.b02db9d1.js"><link rel="prefetch" href="/assets/js/228.aad43ff2.js"><link rel="prefetch" href="/assets/js/229.65340802.js"><link rel="prefetch" href="/assets/js/23.ceb5a5ff.js"><link rel="prefetch" href="/assets/js/230.97cab104.js"><link rel="prefetch" href="/assets/js/231.8415349a.js"><link rel="prefetch" href="/assets/js/232.db6d2697.js"><link rel="prefetch" href="/assets/js/233.723d05b1.js"><link rel="prefetch" href="/assets/js/234.26ed5e94.js"><link rel="prefetch" href="/assets/js/235.a586122b.js"><link rel="prefetch" href="/assets/js/236.f802bda8.js"><link rel="prefetch" href="/assets/js/237.cc8767ad.js"><link rel="prefetch" href="/assets/js/238.6485459e.js"><link rel="prefetch" href="/assets/js/239.9fbf3a55.js"><link rel="prefetch" href="/assets/js/24.07267ac6.js"><link rel="prefetch" href="/assets/js/240.1188f244.js"><link rel="prefetch" href="/assets/js/241.cbfb154d.js"><link rel="prefetch" href="/assets/js/242.352cea5a.js"><link rel="prefetch" href="/assets/js/243.07947e1c.js"><link rel="prefetch" href="/assets/js/244.f5b26fa9.js"><link rel="prefetch" href="/assets/js/245.c6030e32.js"><link rel="prefetch" href="/assets/js/246.d3fe99f7.js"><link rel="prefetch" href="/assets/js/247.185ae95d.js"><link rel="prefetch" href="/assets/js/248.a5f1548c.js"><link rel="prefetch" href="/assets/js/249.19691113.js"><link rel="prefetch" href="/assets/js/25.15e1f641.js"><link rel="prefetch" href="/assets/js/250.72fa1d33.js"><link rel="prefetch" href="/assets/js/251.bedd56f7.js"><link rel="prefetch" href="/assets/js/252.32bbcc8b.js"><link rel="prefetch" href="/assets/js/253.b59e5846.js"><link rel="prefetch" href="/assets/js/254.c0e37e1a.js"><link rel="prefetch" href="/assets/js/255.850da3cc.js"><link rel="prefetch" href="/assets/js/256.952d9817.js"><link rel="prefetch" href="/assets/js/257.88667bb8.js"><link rel="prefetch" href="/assets/js/258.c5873c28.js"><link rel="prefetch" href="/assets/js/259.6ae1dcbc.js"><link rel="prefetch" href="/assets/js/26.35b2bbdc.js"><link rel="prefetch" href="/assets/js/260.cb940cc3.js"><link rel="prefetch" href="/assets/js/261.0686c3e9.js"><link rel="prefetch" href="/assets/js/262.d0719839.js"><link rel="prefetch" href="/assets/js/263.ae83ebc1.js"><link rel="prefetch" href="/assets/js/264.209ad8a3.js"><link rel="prefetch" href="/assets/js/265.be8d1ee8.js"><link rel="prefetch" href="/assets/js/266.c51bceaa.js"><link rel="prefetch" href="/assets/js/267.fe8af48a.js"><link rel="prefetch" href="/assets/js/268.e18ed861.js"><link rel="prefetch" href="/assets/js/269.7126031e.js"><link rel="prefetch" href="/assets/js/27.270fcb06.js"><link rel="prefetch" href="/assets/js/270.89ead106.js"><link rel="prefetch" href="/assets/js/271.0643d07a.js"><link rel="prefetch" href="/assets/js/272.32a8e4b0.js"><link rel="prefetch" href="/assets/js/273.9881da47.js"><link rel="prefetch" href="/assets/js/274.2de022ea.js"><link rel="prefetch" href="/assets/js/275.d9a4fe99.js"><link rel="prefetch" href="/assets/js/276.d33de2e9.js"><link rel="prefetch" href="/assets/js/277.1ec367ab.js"><link rel="prefetch" href="/assets/js/278.66ab7c11.js"><link rel="prefetch" href="/assets/js/279.ff51cd15.js"><link rel="prefetch" href="/assets/js/28.ef3f6db2.js"><link rel="prefetch" href="/assets/js/280.ef45ed5f.js"><link rel="prefetch" href="/assets/js/281.87f26b81.js"><link rel="prefetch" href="/assets/js/282.c8ef594b.js"><link rel="prefetch" href="/assets/js/283.15643091.js"><link rel="prefetch" href="/assets/js/284.c4f25b2e.js"><link rel="prefetch" href="/assets/js/285.2d16e4b6.js"><link rel="prefetch" href="/assets/js/286.44eba266.js"><link rel="prefetch" href="/assets/js/287.7613e62f.js"><link rel="prefetch" href="/assets/js/288.b9546d55.js"><link rel="prefetch" href="/assets/js/289.125f85d8.js"><link rel="prefetch" href="/assets/js/29.177558be.js"><link rel="prefetch" href="/assets/js/290.db375797.js"><link rel="prefetch" href="/assets/js/291.90946626.js"><link rel="prefetch" href="/assets/js/292.a4524678.js"><link rel="prefetch" href="/assets/js/293.3ed9b083.js"><link rel="prefetch" href="/assets/js/294.d6c14116.js"><link rel="prefetch" href="/assets/js/295.2b485032.js"><link rel="prefetch" href="/assets/js/296.29d9aa0f.js"><link rel="prefetch" href="/assets/js/297.bfd72435.js"><link rel="prefetch" href="/assets/js/298.fc056989.js"><link rel="prefetch" href="/assets/js/299.0a3f258e.js"><link rel="prefetch" href="/assets/js/3.4dc033c7.js"><link rel="prefetch" href="/assets/js/30.248a229d.js"><link rel="prefetch" href="/assets/js/300.d064d776.js"><link rel="prefetch" href="/assets/js/301.d95b9fc0.js"><link rel="prefetch" href="/assets/js/302.1afa637a.js"><link rel="prefetch" href="/assets/js/303.231beaa8.js"><link rel="prefetch" href="/assets/js/304.05df35d9.js"><link rel="prefetch" href="/assets/js/305.f2d83cf9.js"><link rel="prefetch" href="/assets/js/306.d54f5e5e.js"><link rel="prefetch" href="/assets/js/307.d5df9000.js"><link rel="prefetch" href="/assets/js/308.ef2f52b3.js"><link rel="prefetch" href="/assets/js/309.d1f13319.js"><link rel="prefetch" href="/assets/js/31.32a62b91.js"><link rel="prefetch" href="/assets/js/310.30b84be3.js"><link rel="prefetch" href="/assets/js/311.d79e3145.js"><link rel="prefetch" href="/assets/js/312.58e24f19.js"><link rel="prefetch" href="/assets/js/313.9809a122.js"><link rel="prefetch" href="/assets/js/314.e92e41b1.js"><link rel="prefetch" href="/assets/js/315.8c2fc1d4.js"><link rel="prefetch" href="/assets/js/316.a0904343.js"><link rel="prefetch" href="/assets/js/317.18e42b54.js"><link rel="prefetch" href="/assets/js/318.6b051d27.js"><link rel="prefetch" href="/assets/js/319.513b0197.js"><link rel="prefetch" href="/assets/js/32.23b75afc.js"><link rel="prefetch" href="/assets/js/320.ae91bc36.js"><link rel="prefetch" href="/assets/js/321.a194efea.js"><link rel="prefetch" href="/assets/js/322.8273020e.js"><link rel="prefetch" href="/assets/js/323.d332e08f.js"><link rel="prefetch" href="/assets/js/324.ed867b64.js"><link rel="prefetch" href="/assets/js/325.c43ccf9a.js"><link rel="prefetch" href="/assets/js/326.9497d879.js"><link rel="prefetch" href="/assets/js/327.7f095e40.js"><link rel="prefetch" href="/assets/js/328.cb5c5847.js"><link rel="prefetch" href="/assets/js/329.d36b59f3.js"><link rel="prefetch" href="/assets/js/33.b258b779.js"><link rel="prefetch" href="/assets/js/330.b1a092b9.js"><link rel="prefetch" href="/assets/js/331.ff86566f.js"><link rel="prefetch" href="/assets/js/332.0daafa9f.js"><link rel="prefetch" href="/assets/js/333.b7e50524.js"><link rel="prefetch" href="/assets/js/334.7dcf9f0b.js"><link rel="prefetch" href="/assets/js/335.862c410a.js"><link rel="prefetch" href="/assets/js/336.c6384990.js"><link rel="prefetch" href="/assets/js/337.ab9d5e52.js"><link rel="prefetch" href="/assets/js/338.598ae59e.js"><link rel="prefetch" href="/assets/js/339.9b810ff8.js"><link rel="prefetch" href="/assets/js/34.3bd60f1f.js"><link rel="prefetch" href="/assets/js/340.5609a53c.js"><link rel="prefetch" href="/assets/js/341.969d335a.js"><link rel="prefetch" href="/assets/js/342.43f85dba.js"><link rel="prefetch" href="/assets/js/343.47280ef9.js"><link rel="prefetch" href="/assets/js/344.346ae5fc.js"><link rel="prefetch" href="/assets/js/345.32166361.js"><link rel="prefetch" href="/assets/js/346.86ff128b.js"><link rel="prefetch" href="/assets/js/347.3c5421fe.js"><link rel="prefetch" href="/assets/js/348.95910300.js"><link rel="prefetch" href="/assets/js/349.004158d8.js"><link rel="prefetch" href="/assets/js/35.18e8f66a.js"><link rel="prefetch" href="/assets/js/350.e10b195b.js"><link rel="prefetch" href="/assets/js/351.12f89875.js"><link rel="prefetch" href="/assets/js/352.83957394.js"><link rel="prefetch" href="/assets/js/353.475971b9.js"><link rel="prefetch" href="/assets/js/354.8af7b26b.js"><link rel="prefetch" href="/assets/js/355.85925e24.js"><link rel="prefetch" href="/assets/js/356.1d77cf9c.js"><link rel="prefetch" href="/assets/js/357.b467d481.js"><link rel="prefetch" href="/assets/js/358.ac96f32d.js"><link rel="prefetch" href="/assets/js/359.e048bd10.js"><link rel="prefetch" href="/assets/js/36.a7ae257c.js"><link rel="prefetch" href="/assets/js/360.e9b45545.js"><link rel="prefetch" href="/assets/js/361.ad1bb45b.js"><link rel="prefetch" href="/assets/js/362.4e24a30b.js"><link rel="prefetch" href="/assets/js/363.64f7dad5.js"><link rel="prefetch" href="/assets/js/364.d9e3ebc2.js"><link rel="prefetch" href="/assets/js/365.330e3086.js"><link rel="prefetch" href="/assets/js/366.a6c0afb3.js"><link rel="prefetch" href="/assets/js/367.ffcefa40.js"><link rel="prefetch" href="/assets/js/368.664c8e4d.js"><link rel="prefetch" href="/assets/js/369.67da2dd2.js"><link rel="prefetch" href="/assets/js/37.d709f9a9.js"><link rel="prefetch" href="/assets/js/370.b1791970.js"><link rel="prefetch" href="/assets/js/371.743a461a.js"><link rel="prefetch" href="/assets/js/372.7703ef1b.js"><link rel="prefetch" href="/assets/js/373.17de31f6.js"><link rel="prefetch" href="/assets/js/374.e508be9e.js"><link rel="prefetch" href="/assets/js/375.6e2e9fe3.js"><link rel="prefetch" href="/assets/js/376.8ca3511a.js"><link rel="prefetch" href="/assets/js/377.bfcee39c.js"><link rel="prefetch" href="/assets/js/378.21852b78.js"><link rel="prefetch" href="/assets/js/379.9649c307.js"><link rel="prefetch" href="/assets/js/38.68ca920e.js"><link rel="prefetch" href="/assets/js/380.dadb4418.js"><link rel="prefetch" href="/assets/js/381.a03c993d.js"><link rel="prefetch" href="/assets/js/382.bb7c22c1.js"><link rel="prefetch" href="/assets/js/383.bd68b2e5.js"><link rel="prefetch" href="/assets/js/384.f6dc7457.js"><link rel="prefetch" href="/assets/js/385.14287a91.js"><link rel="prefetch" href="/assets/js/386.a6284ac2.js"><link rel="prefetch" href="/assets/js/387.c51f147a.js"><link rel="prefetch" href="/assets/js/388.06d9651e.js"><link rel="prefetch" href="/assets/js/389.2d85d927.js"><link rel="prefetch" href="/assets/js/39.de850db9.js"><link rel="prefetch" href="/assets/js/390.2397b3e0.js"><link rel="prefetch" href="/assets/js/391.8413aaaf.js"><link rel="prefetch" href="/assets/js/392.00eecaa4.js"><link rel="prefetch" href="/assets/js/393.351dd3fd.js"><link rel="prefetch" href="/assets/js/394.d2cc4a70.js"><link rel="prefetch" href="/assets/js/395.abee64bf.js"><link rel="prefetch" href="/assets/js/396.bc265e6a.js"><link rel="prefetch" href="/assets/js/397.e4a96944.js"><link rel="prefetch" href="/assets/js/398.f0d26b29.js"><link rel="prefetch" href="/assets/js/399.e77c3ddc.js"><link rel="prefetch" href="/assets/js/4.2f502b73.js"><link rel="prefetch" href="/assets/js/40.91635261.js"><link rel="prefetch" href="/assets/js/400.c7eac401.js"><link rel="prefetch" href="/assets/js/401.06092d16.js"><link rel="prefetch" href="/assets/js/402.4e08e496.js"><link rel="prefetch" href="/assets/js/403.deba4c77.js"><link rel="prefetch" href="/assets/js/404.9100e4df.js"><link rel="prefetch" href="/assets/js/405.e9f451e2.js"><link rel="prefetch" href="/assets/js/406.a0da4aa4.js"><link rel="prefetch" href="/assets/js/407.58b2b123.js"><link rel="prefetch" href="/assets/js/408.eb2cde2d.js"><link rel="prefetch" href="/assets/js/409.9041f749.js"><link rel="prefetch" href="/assets/js/41.169a3cfc.js"><link rel="prefetch" href="/assets/js/410.c12f3710.js"><link rel="prefetch" href="/assets/js/411.452cda45.js"><link rel="prefetch" href="/assets/js/412.8691317a.js"><link rel="prefetch" href="/assets/js/413.25a68f21.js"><link rel="prefetch" href="/assets/js/414.7a9699d8.js"><link rel="prefetch" href="/assets/js/415.6e8cdaff.js"><link rel="prefetch" href="/assets/js/416.e8a86529.js"><link rel="prefetch" href="/assets/js/417.28330bde.js"><link rel="prefetch" href="/assets/js/418.2fed8e17.js"><link rel="prefetch" href="/assets/js/419.773032f4.js"><link rel="prefetch" href="/assets/js/42.e17cd061.js"><link rel="prefetch" href="/assets/js/420.56681228.js"><link rel="prefetch" href="/assets/js/421.0d170e13.js"><link rel="prefetch" href="/assets/js/422.fc8c2a11.js"><link rel="prefetch" href="/assets/js/423.e34ea6a6.js"><link rel="prefetch" href="/assets/js/424.20fe8748.js"><link rel="prefetch" href="/assets/js/425.f001b7cd.js"><link rel="prefetch" href="/assets/js/426.a91230ef.js"><link rel="prefetch" href="/assets/js/427.c6c9fe8d.js"><link rel="prefetch" href="/assets/js/428.9d4f5e41.js"><link rel="prefetch" href="/assets/js/429.c81cfd3f.js"><link rel="prefetch" href="/assets/js/43.f88aa667.js"><link rel="prefetch" href="/assets/js/430.eb61372f.js"><link rel="prefetch" href="/assets/js/431.4a25365a.js"><link rel="prefetch" href="/assets/js/432.42fc1bbe.js"><link rel="prefetch" href="/assets/js/433.8e9ac9f0.js"><link rel="prefetch" href="/assets/js/434.fdd0b160.js"><link rel="prefetch" href="/assets/js/435.d6cbac31.js"><link rel="prefetch" href="/assets/js/436.17750ba2.js"><link rel="prefetch" href="/assets/js/437.a1468099.js"><link rel="prefetch" href="/assets/js/438.ac6a45c2.js"><link rel="prefetch" href="/assets/js/439.242ae27a.js"><link rel="prefetch" href="/assets/js/44.3f36e228.js"><link rel="prefetch" href="/assets/js/440.b80b520c.js"><link rel="prefetch" href="/assets/js/441.e51a4bbb.js"><link rel="prefetch" href="/assets/js/442.ab0b3eda.js"><link rel="prefetch" href="/assets/js/443.47e44250.js"><link rel="prefetch" href="/assets/js/444.54c3b425.js"><link rel="prefetch" href="/assets/js/445.e006c12e.js"><link rel="prefetch" href="/assets/js/446.f2b79730.js"><link rel="prefetch" href="/assets/js/447.2509a397.js"><link rel="prefetch" href="/assets/js/448.b7d69dfc.js"><link rel="prefetch" href="/assets/js/449.8a575d9b.js"><link rel="prefetch" href="/assets/js/45.be1455b1.js"><link rel="prefetch" href="/assets/js/450.ad421aeb.js"><link rel="prefetch" href="/assets/js/451.f09912ae.js"><link rel="prefetch" href="/assets/js/452.f528c4ce.js"><link rel="prefetch" href="/assets/js/453.fc4dc0f9.js"><link rel="prefetch" href="/assets/js/454.733c315c.js"><link rel="prefetch" href="/assets/js/455.44fe35b1.js"><link rel="prefetch" href="/assets/js/456.7f650035.js"><link rel="prefetch" href="/assets/js/457.77ebc183.js"><link rel="prefetch" href="/assets/js/458.133078f4.js"><link rel="prefetch" href="/assets/js/459.33728b5e.js"><link rel="prefetch" href="/assets/js/46.5ad74cb5.js"><link rel="prefetch" href="/assets/js/460.6946f564.js"><link rel="prefetch" href="/assets/js/461.6f906c5c.js"><link rel="prefetch" href="/assets/js/462.26eca27e.js"><link rel="prefetch" href="/assets/js/463.e02e5f65.js"><link rel="prefetch" href="/assets/js/464.0df25c63.js"><link rel="prefetch" href="/assets/js/465.80cd249e.js"><link rel="prefetch" href="/assets/js/466.a0921e86.js"><link rel="prefetch" href="/assets/js/467.1bec2b47.js"><link rel="prefetch" href="/assets/js/468.b6fa37c1.js"><link rel="prefetch" href="/assets/js/469.a1d2487e.js"><link rel="prefetch" href="/assets/js/47.03df5d0a.js"><link rel="prefetch" href="/assets/js/470.36a4b9c8.js"><link rel="prefetch" href="/assets/js/471.28895273.js"><link rel="prefetch" href="/assets/js/472.b9fe392f.js"><link rel="prefetch" href="/assets/js/473.a2835d9c.js"><link rel="prefetch" href="/assets/js/474.cd57b37d.js"><link rel="prefetch" href="/assets/js/475.8d5a9792.js"><link rel="prefetch" href="/assets/js/476.f7f3781c.js"><link rel="prefetch" href="/assets/js/477.9b710b04.js"><link rel="prefetch" href="/assets/js/478.46d66687.js"><link rel="prefetch" href="/assets/js/479.e7444705.js"><link rel="prefetch" href="/assets/js/48.48f286ba.js"><link rel="prefetch" href="/assets/js/480.da2b750a.js"><link rel="prefetch" href="/assets/js/481.838a8e04.js"><link rel="prefetch" href="/assets/js/482.02bf8041.js"><link rel="prefetch" href="/assets/js/483.bb29ef2f.js"><link rel="prefetch" href="/assets/js/484.aebb68bd.js"><link rel="prefetch" href="/assets/js/485.a66ab41b.js"><link rel="prefetch" href="/assets/js/486.8df516fb.js"><link rel="prefetch" href="/assets/js/487.86d28130.js"><link rel="prefetch" href="/assets/js/488.0863da70.js"><link rel="prefetch" href="/assets/js/489.5d4d9e88.js"><link rel="prefetch" href="/assets/js/49.1ca52d11.js"><link rel="prefetch" href="/assets/js/490.3fd65d85.js"><link rel="prefetch" href="/assets/js/492.6f54679b.js"><link rel="prefetch" href="/assets/js/493.a594b1f4.js"><link rel="prefetch" href="/assets/js/494.4f03fae1.js"><link rel="prefetch" href="/assets/js/495.ae50b66b.js"><link rel="prefetch" href="/assets/js/496.bc92d835.js"><link rel="prefetch" href="/assets/js/497.eac65251.js"><link rel="prefetch" href="/assets/js/498.1d726726.js"><link rel="prefetch" href="/assets/js/499.01e4f7d1.js"><link rel="prefetch" href="/assets/js/5.7b1f056c.js"><link rel="prefetch" href="/assets/js/50.73732fe2.js"><link rel="prefetch" href="/assets/js/500.062ade4e.js"><link rel="prefetch" href="/assets/js/501.e6a711dc.js"><link rel="prefetch" href="/assets/js/502.c79e28e2.js"><link rel="prefetch" href="/assets/js/503.bf97bce9.js"><link rel="prefetch" href="/assets/js/504.b2784ef0.js"><link rel="prefetch" href="/assets/js/505.0767ba54.js"><link rel="prefetch" href="/assets/js/506.8ae14637.js"><link rel="prefetch" href="/assets/js/507.003e2349.js"><link rel="prefetch" href="/assets/js/508.ecb5e6bd.js"><link rel="prefetch" href="/assets/js/509.b644f44a.js"><link rel="prefetch" href="/assets/js/51.bed7cf61.js"><link rel="prefetch" href="/assets/js/510.b660946f.js"><link rel="prefetch" href="/assets/js/511.cb186c8f.js"><link rel="prefetch" href="/assets/js/512.d176170f.js"><link rel="prefetch" href="/assets/js/513.18a1afa5.js"><link rel="prefetch" href="/assets/js/514.4a33e931.js"><link rel="prefetch" href="/assets/js/515.8496bd4d.js"><link rel="prefetch" href="/assets/js/516.529b9476.js"><link rel="prefetch" href="/assets/js/517.289738f1.js"><link rel="prefetch" href="/assets/js/518.eda39556.js"><link rel="prefetch" href="/assets/js/519.85b42de5.js"><link rel="prefetch" href="/assets/js/52.22a7da62.js"><link rel="prefetch" href="/assets/js/520.8b531775.js"><link rel="prefetch" href="/assets/js/521.8e4b66fb.js"><link rel="prefetch" href="/assets/js/522.050bfc55.js"><link rel="prefetch" href="/assets/js/523.e973f1e0.js"><link rel="prefetch" href="/assets/js/524.fd160738.js"><link rel="prefetch" href="/assets/js/525.5a4bc307.js"><link rel="prefetch" href="/assets/js/526.361bc4fa.js"><link rel="prefetch" href="/assets/js/527.06ee9d73.js"><link rel="prefetch" href="/assets/js/528.22d9b118.js"><link rel="prefetch" href="/assets/js/529.b7592c16.js"><link rel="prefetch" href="/assets/js/53.767f3bbf.js"><link rel="prefetch" href="/assets/js/530.ad96d564.js"><link rel="prefetch" href="/assets/js/531.61905243.js"><link rel="prefetch" href="/assets/js/532.11aebf61.js"><link rel="prefetch" href="/assets/js/533.0cddb226.js"><link rel="prefetch" href="/assets/js/534.d1c9cc36.js"><link rel="prefetch" href="/assets/js/54.d1f9eec8.js"><link rel="prefetch" href="/assets/js/55.aa90e812.js"><link rel="prefetch" href="/assets/js/56.4d7f81f2.js"><link rel="prefetch" href="/assets/js/57.3c540e8d.js"><link rel="prefetch" href="/assets/js/58.fc1c23f2.js"><link rel="prefetch" href="/assets/js/59.c7a7a4c0.js"><link rel="prefetch" href="/assets/js/6.056886f1.js"><link rel="prefetch" href="/assets/js/60.40e590ae.js"><link rel="prefetch" href="/assets/js/61.e400b323.js"><link rel="prefetch" href="/assets/js/62.bbb30ef1.js"><link rel="prefetch" href="/assets/js/63.c31cd2bb.js"><link rel="prefetch" href="/assets/js/64.62321188.js"><link rel="prefetch" href="/assets/js/65.44adc2b3.js"><link rel="prefetch" href="/assets/js/66.b5740d4f.js"><link rel="prefetch" href="/assets/js/67.76c3624c.js"><link rel="prefetch" href="/assets/js/68.6dd982d4.js"><link rel="prefetch" href="/assets/js/69.eb1390ec.js"><link rel="prefetch" href="/assets/js/7.a96cecf9.js"><link rel="prefetch" href="/assets/js/70.8c882bdd.js"><link rel="prefetch" href="/assets/js/71.001c968a.js"><link rel="prefetch" href="/assets/js/72.ae4ca075.js"><link rel="prefetch" href="/assets/js/73.d6ae6a27.js"><link rel="prefetch" href="/assets/js/74.fba60e37.js"><link rel="prefetch" href="/assets/js/75.0b1bf7bf.js"><link rel="prefetch" href="/assets/js/76.ee19d90e.js"><link rel="prefetch" href="/assets/js/77.fe8ac5f0.js"><link rel="prefetch" href="/assets/js/78.ae09432e.js"><link rel="prefetch" href="/assets/js/79.c1b10e2d.js"><link rel="prefetch" href="/assets/js/80.ae809538.js"><link rel="prefetch" href="/assets/js/81.ca11b4c7.js"><link rel="prefetch" href="/assets/js/82.308b98e4.js"><link rel="prefetch" href="/assets/js/83.355d9dde.js"><link rel="prefetch" href="/assets/js/84.a2b61d48.js"><link rel="prefetch" href="/assets/js/85.cf992fda.js"><link rel="prefetch" href="/assets/js/86.f547c7ea.js"><link rel="prefetch" href="/assets/js/87.2b02746a.js"><link rel="prefetch" href="/assets/js/88.e939aad5.js"><link rel="prefetch" href="/assets/js/89.b000c42a.js"><link rel="prefetch" href="/assets/js/90.dadef001.js"><link rel="prefetch" href="/assets/js/91.c0fe2e32.js"><link rel="prefetch" href="/assets/js/92.e09650b9.js"><link rel="prefetch" href="/assets/js/93.427c7280.js"><link rel="prefetch" href="/assets/js/94.90fc5f58.js"><link rel="prefetch" href="/assets/js/95.13d42b3a.js"><link rel="prefetch" href="/assets/js/96.d0a2ea8c.js"><link rel="prefetch" href="/assets/js/97.cc9a0eda.js"><link rel="prefetch" href="/assets/js/98.3c9f1b7e.js"><link rel="prefetch" href="/assets/js/99.0420dcbc.js"><link rel="prefetch" href="/assets/js/vendors~docsearch.33b2b47d.js">
    <link rel="stylesheet" href="/assets/css/0.styles.40c15e22.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/logo.png" alt="鱼皮的编程宝典" class="logo"> <span class="site-name can-hide">鱼皮的编程宝典</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/学习路线/" class="nav-link">
  学习路线
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="自学之路" class="dropdown-title"><span class="title">自学之路</span> <span class="arrow down"></span></button> <button type="button" aria-label="自学之路" class="mobile-dropdown-title"><span class="title">自学之路</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/自学之路/#大学经历" class="nav-link">
  大学经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#求职经历" class="nav-link">
  求职经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#职场工作" class="nav-link">
  职场工作
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#创作经历" class="nav-link">
  创作经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#创业经历" class="nav-link">
  创业经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#生活日常" class="nav-link">
  生活日常
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="编程分享" class="dropdown-title"><span class="title">编程分享</span> <span class="arrow down"></span></button> <button type="button" aria-label="编程分享" class="mobile-dropdown-title"><span class="title">编程分享</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/编程分享/#入门必看-学习路线" class="nav-link">
  入门必看-学习路线
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#学习指南" class="nav-link">
  学习指南
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#开发经验" class="nav-link">
  开发经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#求职经验" class="nav-link">
  求职经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#职场经验" class="nav-link">
  职场经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#技术分享" class="nav-link">
  技术分享
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#实战教程" class="nav-link">
  实战教程
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#其他" class="nav-link">
  其他
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#📚-项目教程" class="nav-link">
  项目教程
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#个人作品" class="nav-link">
  个人作品
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#🎁-编程资源" class="nav-link">
  编程资源
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#🌐-科技科普" class="nav-link">
  科技科普
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="项目实战" class="dropdown-title"><span class="title">项目实战</span> <span class="arrow down"></span></button> <button type="button" aria-label="项目实战" class="mobile-dropdown-title"><span class="title">项目实战</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/项目实战/OJ 判题系统.html" class="nav-link">
  OJ 判题系统
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/智能 BI 平台.html" class="nav-link">
  智能 BI 平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/聚合搜索平台.html" class="nav-link">
  聚合搜索平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/API 开放平台.html" class="nav-link">
  API 开放平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/伙伴匹配系统.html" class="nav-link">
  伙伴匹配系统
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/用户中心项目.html" class="nav-link">
  用户中心项目
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/Java 后端万用项目模板.html" class="nav-link">
  Java 后端万用项目模板
</a></li></ul></div></div><div class="nav-item"><a href="/知识碎片/" class="nav-link">
  知识碎片
</a></div><div class="nav-item"><a href="/编程导航/" class="nav-link">
  🔥 编程导航
</a></div><div class="nav-item"><a href="/产品服务/" class="nav-link">
  产品服务
</a></div><div class="nav-item"><a href="/作者/" class="nav-link">
  作者
</a></div> <a href="https://github.com/liyupi/codefather" target="_blank" rel="noopener noreferrer" class="repo-link">
    GitHub
    <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/学习路线/" class="nav-link">
  学习路线
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="自学之路" class="dropdown-title"><span class="title">自学之路</span> <span class="arrow down"></span></button> <button type="button" aria-label="自学之路" class="mobile-dropdown-title"><span class="title">自学之路</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/自学之路/#大学经历" class="nav-link">
  大学经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#求职经历" class="nav-link">
  求职经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#职场工作" class="nav-link">
  职场工作
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#创作经历" class="nav-link">
  创作经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#创业经历" class="nav-link">
  创业经历
</a></li><li class="dropdown-item"><!----> <a href="/自学之路/#生活日常" class="nav-link">
  生活日常
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="编程分享" class="dropdown-title"><span class="title">编程分享</span> <span class="arrow down"></span></button> <button type="button" aria-label="编程分享" class="mobile-dropdown-title"><span class="title">编程分享</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/编程分享/#入门必看-学习路线" class="nav-link">
  入门必看-学习路线
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#学习指南" class="nav-link">
  学习指南
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#开发经验" class="nav-link">
  开发经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#求职经验" class="nav-link">
  求职经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#职场经验" class="nav-link">
  职场经验
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#技术分享" class="nav-link">
  技术分享
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#实战教程" class="nav-link">
  实战教程
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#其他" class="nav-link">
  其他
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#📚-项目教程" class="nav-link">
  项目教程
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#个人作品" class="nav-link">
  个人作品
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#🎁-编程资源" class="nav-link">
  编程资源
</a></li><li class="dropdown-item"><!----> <a href="/编程分享/#🌐-科技科普" class="nav-link">
  科技科普
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="项目实战" class="dropdown-title"><span class="title">项目实战</span> <span class="arrow down"></span></button> <button type="button" aria-label="项目实战" class="mobile-dropdown-title"><span class="title">项目实战</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/项目实战/OJ 判题系统.html" class="nav-link">
  OJ 判题系统
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/智能 BI 平台.html" class="nav-link">
  智能 BI 平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/聚合搜索平台.html" class="nav-link">
  聚合搜索平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/API 开放平台.html" class="nav-link">
  API 开放平台
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/伙伴匹配系统.html" class="nav-link">
  伙伴匹配系统
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/用户中心项目.html" class="nav-link">
  用户中心项目
</a></li><li class="dropdown-item"><!----> <a href="/项目实战/Java 后端万用项目模板.html" class="nav-link">
  Java 后端万用项目模板
</a></li></ul></div></div><div class="nav-item"><a href="/知识碎片/" class="nav-link">
  知识碎片
</a></div><div class="nav-item"><a href="/编程导航/" class="nav-link">
  🔥 编程导航
</a></div><div class="nav-item"><a href="/产品服务/" class="nav-link">
  产品服务
</a></div><div class="nav-item"><a href="/作者/" class="nav-link">
  作者
</a></div> <a href="https://github.com/liyupi/codefather" target="_blank" rel="noopener noreferrer" class="repo-link">
    GitHub
    <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav>  <ul class="sidebar-links"><li><a href="/%E8%87%AA%E5%AD%A6%E4%B9%8B%E8%B7%AF/" class="sidebar-link">鱼皮的编程学习之路</a></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>大学经历</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/%E6%88%91%E5%AD%A6%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%9A%84%E5%9B%9B%E5%B9%B4-%E5%85%B1%E5%8B%89/" class="sidebar-link">我学计算机的四年，共勉！</a></li><li><a href="/%E4%BB%8E%E5%A4%A7%E5%AD%A6%E5%88%B0%E7%A7%8B%E6%8B%9B-%E6%88%91%E5%A6%82%E4%BD%95%E6%8B%BF%E4%B8%8B%E8%85%BE%E8%AE%AFoffer/" class="sidebar-link">从大学到秋招，我如何拿下腾讯offer</a></li><li><a href="/%E5%A4%A7%E5%AD%A6-%E6%88%91%E6%98%AF%E6%80%8E%E4%B9%88%E8%BE%B9%E5%AD%A6%E7%BC%96%E7%A8%8B%E8%BE%B9%E8%B5%9A%E9%92%B1%E7%9A%84/" class="sidebar-link">大学，我是怎么边学编程边赚钱的？</a></li><li><a href="/%E6%88%91%E5%A4%A7%E4%B8%89%E6%97%B6%E5%81%9A%E7%9A%84%E7%BE%9E%E8%80%BB%E9%A1%B9%E7%9B%AE/" class="sidebar-link">我大三时做的羞耻项目！</a></li><li><a href="/%E9%B1%BC%E7%9A%AE%E7%9A%84%E8%80%83%E8%AF%81%E7%BB%8F%E5%8E%86/" class="sidebar-link">鱼皮的考证经历</a></li><li><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/" aria-current="page" class="active sidebar-link">鱼皮在实验室出版教材的经历</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#第一次写书杂感" class="sidebar-link">第一次写书杂感</a></li></ul></li><li><a href="/%E9%B1%BC%E7%9A%AE%E7%9A%84%E6%AF%95%E4%B8%9A%E8%AE%BE%E8%AE%A1-%E6%97%B6%E9%9A%94%E4%B8%80%E5%B9%B4-%E4%BB%8D%E6%84%9F%E8%A7%89%E5%A4%B4%E7%A7%83/" class="sidebar-link">鱼皮的毕业设计，时隔一年，仍感觉头秃</a></li><li><a href="/%E9%B1%BC%E7%9A%AE%E7%9A%84%E6%AF%95%E4%B8%9A%E6%84%9F%E5%8F%97/" class="sidebar-link">鱼皮的毕业感受</a></li><li><a href="/%E9%B1%BC%E7%9A%AE%E8%90%BD%E6%88%B7%E4%B8%8A%E6%B5%B7%E5%BF%83%E5%BE%97/" class="sidebar-link">鱼皮落户上海心得</a></li></ul></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>求职经历</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>职场工作</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>创作经历</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>创业经历</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>生活日常</span> <span class="arrow right"></span></p> <!----></section></li></ul> </aside> <main class="page"> <div class="content"><div style="width:100%"><div class="theme-default-content custom-content content__default"><h1 id="鱼皮在实验室出版教材的经历"><a href="#鱼皮在实验室出版教材的经历" class="header-anchor">#</a> 鱼皮在实验室出版教材的经历</h1> <blockquote><p>本文作者：<a href="https://yuyuanweb.feishu.cn/wiki/Abldw5WkjidySxkKxU2cQdAtnah" target="_blank" rel="noopener noreferrer">程序员鱼皮<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <p>本站地址：<a href="https://codefather.cn" target="_blank" rel="noopener noreferrer">https://codefather.cn<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p></blockquote> <blockquote><p>第一次写书的经验和感悟</p></blockquote> <p>大家好，我是鱼皮。</p> <p>之前给大家分享过自己大学四年的经历：<a href="https://mp.weixin.qq.com/s?__biz=MzI1NDczNTAwMA==&amp;mid=2247496429&amp;idx=1&amp;sn=fd8c23892964e8d96b2f5698ea2cd0e2&amp;scene=21#wechat_redirect" target="_blank" rel="noopener noreferrer">我学计算机的四年，共勉！<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <p>在文章中，我提到自己在大三的时候，跟着学院的老师在实验室研究区块链技术，并且成功出版了一本 <strong>教材</strong>。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528057.png" loading="lazy" class="lazy"></p> <blockquote><p>区块链教材</p></blockquote> <p>虽然这本书的销量可怜，如今更多的是躺在一些学校的图书馆里，但毕竟是我第一次参与写书，对我的意义还是非常大的。</p> <p>正好也有不少小伙伴好奇：大学时我是怎么写书的？写书要做哪些事？写书难不难？自己也想写本书怎么办？</p> <p>今天就扯扯当年写书那些事儿~</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528904.png" loading="lazy" class="lazy"></p> <h2 id="第一次写书杂感"><a href="#第一次写书杂感" class="header-anchor">#</a> 第一次写书杂感</h2> <p>本文大纲：</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528062.png" loading="lazy" class="lazy">本文思维导图</p> <h3 id="为什么要写"><a href="#为什么要写" class="header-anchor">#</a> 为什么要写？</h3> <p>一个很偶然的机会，大二暑假的时候，学院信息安全实验室的老师找到我，想邀请我加入实验室，带我一起来学习研究下区块链技术。正好当时那段时间我也出于兴趣学了些这方面的知识，于是就非常激动地加入了。</p> <p>进入实验室后，刚开始只是学习一些区块链概念和开发技术，并且目标是开发一个区块链落地项目。后来，老师考虑要不要出一本相关的教材，问问我的想法。</p> <p>起初我是非常犹豫的，一方面觉得写书很难，距离自己太遥远了，担心自己能力不够，怕写不出来耽误事儿；另一方面是本来当时的自己就忙的焦头烂额了，再摊上这么个大活，不得发如雨下？</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528046.png" loading="lazy" class="lazy"></p> <p>但经过一番考量后，我还是决定要写，为啥呢？</p> <p>首要原因是 <strong>兴趣</strong>。我做事情是必须要有兴趣和动力的。况且写书是要长期坚持的事，如果我对它没有兴趣，哪怕给我再多时间我也是写不好的。但写书本身对我来说是比较新鲜和神秘的，我自己也一直在写博客，所以想试试写书和博客到底有什么区别，也想挑战一下自己。</p> <p>但我感兴趣的事情实在太多了，毕竟时间有限，不是说有兴趣的事都能做，所以除了兴趣之外，我还会思考这件事对我的意义。</p> <h4 id="写书的意义"><a href="#写书的意义" class="header-anchor">#</a> 写书的意义</h4> <p>当时我列了个表，总结了如下几点写书对我的意义：</p> <ol><li>技能提升：通过写书，肯定可以锻炼我的文笔和思维逻辑。</li> <li>磨练心性：自己当时处于一个很浮躁的阶段，手头的事情很多，但基本没有静下心来把一件事做到完整和完美，所以想借这个机会让自己慢下来，踏实一点。</li> <li>历练机会：大学期间，有老师指导的写书机会可不多，何况还是自己感兴趣的方向！这对自己来说也是一次挑战，机不可失。</li> <li>积累经验：考虑到未来自己可能也会写书，提前接触一下、熟悉流程，很有必要。</li> <li>履历：如果能成功出版教材，写在简历上肯定是很有牌面的。事实证明后来的面试中，很多面试官都被我的这个经历晃了下眼，面试的内容也变得有趣起来。</li> <li>反馈：虽然我对学习技术很感兴趣，但孩子天性就是爱玩和懒惰。通过参与写书，能够进一步激励和督促我持续学习，通过输出反哺输入（我现在也是这么个状态哈哈）。</li> <li>利他：书本是知识传播的介质，我当然也希望通过它，帮助更多人学到技术，这会让我感到快乐。</li> <li>金钱：早就说过了我是俗人，跟着老师写书，钱还是很多的哈哈~</li></ol> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528075.png" loading="lazy" class="lazy"></p> <p>除了兴趣和意义外，还要再考虑下写书的成本（性价比）。</p> <p>反正我当时自己也要学区块链方面的技术，也要在自己的网站上写博客，那为啥不顺便把博客文章优化下，整理成书本中的内容呢？</p> <p>所以真正写书的原因，竟然只是因为顺手！</p> <h3 id="怎么写"><a href="#怎么写" class="header-anchor">#</a> 怎么写？</h3> <p>在写书技巧上，我并不专业，所以这里就简单分享下我当时写书的过程吧。</p> <h4 id="目标"><a href="#目标" class="header-anchor">#</a> 目标</h4> <p>首先，要明确你的创作目标、方向和受众，它们会决定你的实际内容。</p> <p>比如我写的这本书名叫《区块链智能合约技术与应用》，所以创作内容一定围绕 <strong>区块链智能合约技术</strong>，并且有理论有实际应用。书定位是 <strong>区块链教材</strong>，所以要保证内容完全准确、通俗易懂、适合入门。</p> <h4 id="大纲"><a href="#大纲" class="header-anchor">#</a> 大纲</h4> <p>确定目标后，必须先根据目标编写大纲，也就是目录。而不是走一步算一步，先写内容再设置目录。</p> <p>写大纲的时候，一定要站在一个上帝视角，结合书的目标来编写，注意两个点：</p> <ol><li>合理设置每个章节的页数、分清主次，不要让和书本主题无关的内容占用了过多篇幅。</li> <li>注重章节的顺序和章节间的关联性，由浅入深，或者添加引导（比如本章为附加内容，未学过 xx 技术的读者可跳过），千万不要让读者感觉到断层。</li></ol> <p>我当时在讲解区块链超级账本技术时，也是站在读者的角度，先从前置基础技术讲起，再循序渐进地介绍新技术的入门、基础篇、提高篇。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528064.png" loading="lazy" class="lazy">大纲</p> <h4 id="内容"><a href="#内容" class="header-anchor">#</a> 内容</h4> <p>想要写出内容，肯定是先要下功夫好好研究技术的。</p> <p>比如说我要写的书是区块链智能合约技术，当时国内对这方面的研究有一些，但实际应用很少，所以我翻遍了国外各主流区块链技术的官方文档、国外的博客文章、国内的技术书籍等，甚至还阅读了一些国外的论文，混进了很多区块链交流技术群！</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528273.png" loading="lazy" class="lazy">部分群依旧健在</p> <p>有了一定积累后，就可以开始创作内容了，个人觉得不必在第一次写的时候就追求完美，可以先写草稿，把思路串通（先把程序跑起来）。理论章节就多查阅一些资料，像上课记笔记一样写；实战章节就像做实验一样，像写实验报告一样写。</p> <h4 id="调优"><a href="#调优" class="header-anchor">#</a> 调优</h4> <p>写完内容草稿后呢，就需要反复阅读内容，从以下几个方面不断优化：</p> <p><strong>1. 内容细化</strong></p> <p>可以对重点内容补充更多的讲解，或者拆分成小点，讲的更清晰透彻。还可以尝试思考读者可能产生的问题，并通过注释的方式补充，比如下图：</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528191.png" loading="lazy" class="lazy"></p> <p><strong>2. 提升专业度</strong></p> <p>对于教材而言，知识的正确性是很重要的，尤其是理论章节！所以，一定能要充分查阅中英文资料，并在适当的地方补充参考依据，让读者感受到你的专业，并且给读者深一度学习的机会。</p> <p>常见的参考内容有官方文档、博客、论文等，比如我书本中的这段：</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528255.png" loading="lazy" class="lazy"></p> <p><strong>3. 提升可理解性</strong></p> <p>以小白的视角来阅读自己的内容，通过添加案例、图片、引导语等方式，让内容更生动，更通俗易懂。比如典型的流程图：</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528870.png" loading="lazy" class="lazy"></p> <p><strong>4. 提升内容关联性</strong></p> <p>每章的内容都要做到承上启下，开篇承接上文，介绍本章内容；文末总结本章内容，引出下文。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528648.png" loading="lazy" class="lazy"></p> <h4 id="排版"><a href="#排版" class="header-anchor">#</a> 排版</h4> <p>技术类书籍的内容很丰富多样，有文字、有小图、有长流程图、有代码等等。所以要注重内容排版和风格的统一规范。比如说正文字体都用 16 像素、提示内容都用灯泡图标等。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528979.png" loading="lazy" class="lazy">统一排版</p> <p>OK，以上都完成之后，就可以把稿子交给老师 / 出版社了，等待他们的反馈意见。</p> <h3 id="困难和教训"><a href="#困难和教训" class="header-anchor">#</a> 困难和教训</h3> <p>写书的过程中，也遇到了一些麻烦事儿，总结了一些经验教训。</p> <p>其中让我印象最深刻的有三件事。</p> <h4 id="毫无头绪"><a href="#毫无头绪" class="header-anchor">#</a> 毫无头绪</h4> <p>如果现在让你针对一个技术写一篇文章，你也许能写出来。但如果让你写一本书呢？怎么把这个技术展开或深入地去讲呢？划分为哪些方面呢？</p> <p>万事开头难，我刚开始也是一头雾水、一脸懵逼。</p> <p>但我们程序员最喜欢的就是复制粘贴了对吧？复制代码的事儿，那能叫抄么？！</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528296.png" loading="lazy" class="lazy"></p> <p>自己不会写大纲，没有思路，那不妨多去看看其他的技术书籍是怎么写的，怎么掌控内容的比例（理论 or 实战），怎么由浅入深等等。多借鉴借鉴不就好了？</p> <p>此外，自己没思路的话，不妨和老师、同学多交流，共同探讨，汲取灵感。</p> <p>于是，我在最初下笔前，参阅了十几本技术书籍。并且和老师交流探讨，最终共同确认了大纲。</p> <p>所以在写书前，要多借鉴、多交流，有了大纲，再往里面填内容就行了。</p> <blockquote><p>开发项目也一样，自己没灵感，那就找一个已有的项目，效仿学习。</p></blockquote> <h4 id="资源爆炸"><a href="#资源爆炸" class="header-anchor">#</a> 资源爆炸</h4> <p>我在写书的过程中，积攒了各种各样的资源文件，比如文字片段、代码、参考资料、PDF、图片、绘图源文件等。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528599.png" loading="lazy" class="lazy">各种文件</p> <p>起初没有想到文件会那么多，就没做整理，下载一个图片就随便一丢省事儿～ 结果到最后想找一个已下载的文件都找不到，很多临时想到的好句子也因未及时整理而丢掉了，非常可惜。</p> <p>所以之后，我在写文章之前会和做项目一样，新建一个独立的目录，把资料按照类别再放到对应子目录中，时常整理，并且把一些好的句子、段落、灵感也集中存到单独的文件中。还可以利用 Everything 等软件帮助自己检索，能很大提高效率，专注写文。</p> <h4 id="修改噩梦"><a href="#修改噩梦" class="header-anchor">#</a> 修改噩梦</h4> <p>我记得当时写完文章后，如释重负般提交到出版社，却没想到，这只是噩梦的开始。出版社直接给我打回来修改，改完一遍再提交，结果又被打回来修改，反反复复很多次，有内容问题、有排版问题，其恶心程度和改 Bug 可以一战！</p> <p>比如这里，就放了一张图，结果出版社的老师给了 4 点建议：</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528790.png" loading="lazy" class="lazy"></p> <p>后来，我总结了下稿子频繁被打回的原因，一方面是第一次写书没有经验，很多内容确实写的不够好，不够注重上下文的关联；另一方面是有些排版、图文形式没有在最初就统一确定，导致文章写好后再修改时，很容易出现遗漏。还有最致命的一个地方 —— 内容过长，就是文章篇幅没有把控好，于是我不得不把写过的文章又通读了几遍，依依不舍地做减法，白写了很多内容。</p> <p>所以，在写书前，能确定的事尽早确定，比如排版、内容要求等，不要吃了哑巴亏。</p> <blockquote><p>做项目也一样，事先明确规范，而不是出事后，再手忙脚乱去弥补，这样只会打消你的积极性。</p></blockquote> <h3 id="收获与感悟"><a href="#收获与感悟" class="header-anchor">#</a> 收获与感悟</h3> <h4 id="改变"><a href="#改变" class="header-anchor">#</a> 改变</h4> <p>从起草到出版，整整半年多的时间，对我带来的改变是巨大的。</p> <p>文笔和思维得到了提升、变得更沉稳、积累了写书经验、简历了添彩、学到了区块链技术、传播了知识、赚钱买了电脑等等，基本我此前的预期全部被满足了。</p> <p>最重要的是，我收获了一段永生难忘的回忆，真想再回去看看那时在实验室静下心来专注敲键盘的自己啊。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528542.png" loading="lazy" class="lazy"></p> <blockquote><p>实验室我的小桌</p></blockquote> <h4 id="感想"><a href="#感想" class="header-anchor">#</a> 感想</h4> <p>此前，我觉得能出版书的人都老牛逼了，让自己写一本书简直想都不敢想。</p> <p>所以教材出版后，我最大的感触是：啊，自己竟然做到了！原来这就是写书，感觉也没有自己想的那么难！</p> <p>此外，还有一些其他的感想，比如：</p> <ol><li>写书一定不能硬写，必须得有明确的创作方向，有东西，才能写出来。像我写的章节分为理论和实战两部分，实战部分写的贼快贼爽，因为都是自己做过的实验、写过的代码，轻轻松松就能写一大堆，也无比真实；但理论部分就跟挤牙膏一样，一个字一个字地往外挤，这就是因为自己还缺乏一定的知识储备。</li> <li>写书不难，但写好书难于上青天。正是因为我缺少经验、内容写的不够好，不足以出版，才多次被老师和出版社打回修改。说实话，如果没有他们的指点和建议，我写的东西真的太烂太烂了。还是要继续努力，和敲代码一样，多写多看，才能创作出更优质的内容。</li></ol> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528116.png" loading="lazy" class="lazy"></p> <h4 id="遗憾"><a href="#遗憾" class="header-anchor">#</a> 遗憾</h4> <p>唯一的遗憾就是我为这本书贡献了一半以上的章节，但书的封面却没有我的署名，只是在书本的开头提了一笔。但这也是国内教育现状吧，学生给老师打工呗~</p> <p>不过我倒觉得无所谓了，本来我参与写书的原因里也没有这点，而且这也并不是真正属于我的书，以后相信还会有机会的！</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528177.png" loading="lazy" class="lazy"></p> <h3 id="以后还会写书么"><a href="#以后还会写书么" class="header-anchor">#</a> 以后还会写书么？</h3> <p>有读者问我这个问题，我的回答是：<strong>一定会写</strong>，但至于是否会出版，我可不敢乱立 Flag。虽然很多出版社联系过我，但近两年内，我并没有写书的计划和打算。</p> <p>原因如下：</p> <p><strong>1. 专业度不够</strong></p> <p>刚刚毕业一年，还是太嫩了，越成长越发现自己的眼界还是太小，很多事情没自己想的那么简单。所以还是要先持续学习，积累经验，摸透一个领域或行业，等变得更专业了再王者归来。</p> <p>我自己看书时也更倾向于阅读行业专家的著作，有些东西，即使你天赋异禀，缺少企业的磨炼也是写不出来的。</p> <p><strong>2. 没有选题</strong></p> <p>就目前为止，我还没有很好的、能打动自己的选题和创作灵感。</p> <p>自己虽然看过很多技术类书籍，但老实说，现在国内的技术书籍有些功利化（国内技术都是如此），大部分是带你入门或者教你找工作；要不就是各种生搬硬套、依葫芦画瓢的，就拿我当时看的基本区块链书籍一样，开篇理论全是抄来抄去，把国外的文章拿来翻译。</p> <p>哎，国内真正有深度、有思想的技术书籍还是太少了，你看那些经典书籍，基本都是国外的。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528107.jpeg" loading="lazy" class="lazy"></p> <p>我觉得一本好书应该不仅能教读者学到技术，还要让读者能跟着作者的思路，进入到他的世界，学习他的思想，就像是在和朋友交流一样，而不是干巴巴地讲技术。</p> <p>但我现在也写不出来这样的书，所以再学习学习哈哈。</p> <p><strong>3. 个人性格</strong></p> <p>我其实是很麻烦的人，不习惯被某种事物束缚，而是喜欢按照自己的节奏来做事。之前在学校的写教材经历已经让我感受到了写书的麻烦，各种修改、各种 deadline（最终期限），还是会给我很大压力的，毕竟工作之后更懂得了自由的可贵。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528570.png" loading="lazy" class="lazy"></p> <p>但即使不出版书籍，我也会持续输出。毕竟现在网上的创作专区这么多对吧，哪里不能写文章写专栏呢？</p> <hr> <p>最后，碎碎念。</p> <p>坚持更文 <strong>半年</strong>，今天这篇文章已经是我的 <strong>第 110 篇</strong> 原创了，粉丝数也在朝 5w 进发。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528573.png" loading="lazy" class="lazy"></p> <p>打死我也想不到，曾经语文成绩那么烂、阅读理解和作文都是小菜鸡的自己，竟然有朝一日能出版教材、甚至公开向那么多的读者分享自己的文章。</p> <p>不过这并不是偶然。</p> <p>始于兴趣，持于负责。从早期草草写文、应付了事、自己都看不懂；再到后面每一篇都精雕细琢、因为一个词句纠结半天，这是我不断尝试和努力的结果，也是我向越来越多的读者交上的答卷。相信早期关注我的读者，都能感受到这半年来我文章的进步。（不是说现在写得好，而是之前写的太烂了哈哈 🐶）</p> <p>还有太多话放到后面说吧，午休又要特么的结束了，我会继续加油创作滴~</p> <p><strong>相信自己有能力，那么你就真的会有。</strong> 希望大家也能勇敢尝试，不断进步！</p> <p>我是鱼皮，<strong>点赞 + 在看</strong> 还是要求一下的，感谢朋友们的支持，祝大家都能心想事成、发大财、行大运。</p> <p><img alt="" data-src="https://pic.yupi.icu/5563/202311021528290.png" loading="lazy" class="lazy"></p></div> <footer class="page-edit" style="margin:0;"><div class="edit-link"><a href="https://github.com/liyupi/codefather/edit/master/自学之路/大学经历/鱼皮在实验室出版教材的经历.md" target="_blank" rel="noopener noreferrer">完善页面</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">最近更新:</span> <span class="time">11/11/2023, 8:17:47 PM</span></div></footer> <!----></div> <div class="toc-container-sidebar"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="max-height:86vh"><div style="font-weight:bold;">鱼皮在实验室出版教材的经历</div> <hr> <div class="toc-box"><ul class="toc-sidebar-links"><li><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#第一次写书杂感" class="toc-sidebar-link">第一次写书杂感</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#为什么要写" class="toc-sidebar-link">为什么要写？</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#写书的意义" class="toc-sidebar-link">写书的意义</a></li><li class="toc-sidebar-sub-header"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#怎么写" class="toc-sidebar-link">怎么写？</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#目标" class="toc-sidebar-link">目标</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#大纲" class="toc-sidebar-link">大纲</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#内容" class="toc-sidebar-link">内容</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#调优" class="toc-sidebar-link">调优</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#排版" class="toc-sidebar-link">排版</a></li><li class="toc-sidebar-sub-header"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#困难和教训" class="toc-sidebar-link">困难和教训</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#毫无头绪" class="toc-sidebar-link">毫无头绪</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#资源爆炸" class="toc-sidebar-link">资源爆炸</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#修改噩梦" class="toc-sidebar-link">修改噩梦</a></li><li class="toc-sidebar-sub-header"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#收获与感悟" class="toc-sidebar-link">收获与感悟</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#改变" class="toc-sidebar-link">改变</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#感想" class="toc-sidebar-link">感想</a></li><li class="toc-sidebar-sub-header toc-sidebar-depth-4"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#遗憾" class="toc-sidebar-link">遗憾</a></li><li class="toc-sidebar-sub-header"><a href="/%E9%B1%BC%E7%9A%AE%E5%9C%A8%E5%AE%9E%E9%AA%8C%E5%AE%A4%E5%87%BA%E7%89%88%E6%95%99%E6%9D%90%E7%9A%84%E7%BB%8F%E5%8E%86/#以后还会写书么" class="toc-sidebar-link">以后还会写书么？</a></li></ul></li></ul></div></div></div></div></div>  <main class="footer"> <div class="copy-right"><span class="name"> 编程导航   |     </span> <a target="_blank" rel="noreferrer">
          
        </a></div></main></main> <aside class="page-sidebar"> <div class="page-side-toolbar"></div>  </aside></div><div class="global-ui"><!----></div></div>
    <script src="/assets/js/app.12ab4756.js" defer></script><script src="/assets/js/2.fd06b53e.js" defer></script><script src="/assets/js/491.ae3a2f87.js" defer></script>
  </body>
</html>
